import routeGuard from './routeGuard.js'
import config from '../config/index.js'

/**
 * 检查用户登录状态并处理跳转
 * 如果未登录，跳转到登录页面并携带重定向参数
 * @param {string} redirectPath 登录后需要跳转的页面路径
 * @returns {boolean} 是否已登录
 */
const checkLoginAndRedirect = (redirectPath) => {
  // 检查用户是否已登录
  const token = uni.getStorageSync(config.routeGuard.tokenKey)
  
  if (!token) {
    // 未登录，跳转到登录页
    let loginUrl = config.routeGuard.loginPath
    
    if (redirectPath) {
      // 对重定向路径进行编码，避免特殊字符问题
      const encodedRedirect = encodeURIComponent(redirectPath)
      loginUrl += `?${config.routeGuard.redirectKey}=${encodedRedirect}`
    }
    
    // 跳转到登录页
    uni.navigateTo({
      url: loginUrl
    })
    
    return false
  }
  
  return true
}

export default {
  checkLoginAndRedirect,
  getCurrentPageFullPath: routeGuard.getCurrentPageFullPath
}